﻿#pragma warning(disable: 4996)
#pragma warning(disable: 6031)

/*
皮球从某给定高度自由落下，触地后反弹到原高度的一半，再落下，再反弹，……，如此反复。问皮球在第n次落地时，在空中一共经过多少距离？第n次反弹的高度是多少？

输入格式:
输入在一行中给出两个非负整数，分别是皮球的初始高度和n，均在长整型范围内。

输出格式:
在一行中顺序输出皮球第n次落地时在空中经过的距离、以及第n次反弹的高度，其间以一个空格分隔，保留一位小数。题目保证计算结果不超过双精度范围。

输入样例:
33 5
输出样例:
94.9 1.0
*/

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

typedef double Real;

Real h;
int n;

void read_data()
{
	scanf("%lf", &h);
	scanf("%d", &n);
}

void solve()
{
	read_data();
	if (n == 0) {
		printf("0.0 0.0");
		return;
	}
	Real s = h;
	h /= 2;
	for (int i = 1; i < n; ++i)
	{
		s += h * 2;
		h /= 2;
	}
	printf("%.1lf %.1lf", s, h);
}

int main()
{
	freopen("D:/Develop/GitRepos/MOOC/浙江大学/数据结构/201906/DataStructure/M2019秋C入门和进阶练习集/7-84.txt", "r", stdin);
	solve();
	return 0;
}
